package com.reverse.engineering.util.core.run.enums;

/**
 * 模板的占位符名称
 * 
 * @author liu
 * @date 2020-08-18
 */
public enum Placeholder {

    /**生成文件的基础路径(用/相隔)*/
    BASEPATHX("~basepathX~"),
    /**生成文件的基础路径(用.相隔)*/
    BASEPATHD("~basepathD~"),
    /**生成文件的基础路径(用/相隔,结尾是/)*/
    BASEPATHXX("~basepathXX~"),
    /**生成文件的基础路径(用.相隔,结尾是.)*/
    BASEPATHDD("~basepathDD~"),
    /**Entity包名*/
    PACKAGE_NAME_ENTITY("~entityPackageName~"),
    /**Dao接口包名*/
    PACKAGE_NAME_DAO_INTERFACE("~daoInterfacePackageName~"),
    /**Dao实现类包名*/
    PACKAGE_NAME_DAO("~daoPackageName~"),
    /**Service接口包名*/
    PACKAGE_NAME_SERVICE_INTERFACE("~serviceInterfacePackageName~"),
    /**Service实现类包名*/
    PACKAGE_NAME_SERVICE("~servicePackageName~"),
    /**Controller实现类包名*/
    PACKAGE_NAME_CONTROLLER("~controllerPackageName~"),
    /**Entity类名大写*/
    ENTITY_CLASS_NAME_D("~entityClassNameD~"),
    /**Entity类名小写*/
    ENTITY_CLASS_NAME_X("~entityClassNameX~"),
    /**Entity作为参数的参数名大写*/
    ENTITY_PARAM_NAME_D("~entityParamNameD~"),
    /**Entity作为参数的参数名小写*/
    ENTITY_PARAM_NAME_X("~entityParamNameX~"),
    /**Entity的Bean对象名*/
    ENTITY_BEAN_NAME("~entityBeanName~"),
    /**Dao接口名大写*/
    DAO_INTERFACE_CLASS_NAME_D("~daoInterfaceNameD~"),
    /**Dao接口名小写*/
    DAO_INTERFACE_CLASS_NAME_X("~daoInterfaceNameX~"),
    /**Dao接口作为参数的参数名大写*/
    DAO_INTERFACE_PARAM_NAME_D("~daoInterfaceParamNameD~"),
    /**Dao接口作为参数的参数名小写*/
    DAO_INTERFACE_PARAM_NAME_X("~daoInterfaceParamNameX~"),
    /**Dao接口的Bean对象名*/
    DAO_INTERFACE_BEAN_NAME("~daoInterfaceBeanName~"),
    /**Dao实现类类名大写*/
    DAO_CLASS_NAME_D("~daoClassNameD~"),
    /**Dao实现类类名小写*/
    DAO_CLASS_NAME_X("~daoClassNameX~"),
    /**Dao实现类作为参数的参数名大写*/
    DAO_PARAM_NAME_D("~daoParamNameD~"),
    /**Dao实现类作为参数的参数名小写*/
    DAO_PARAM_NAME_X("~daoParamNameX~"),
    /**Dao实现类的Bean对象名*/
    DAO_BEAN_NAME("~daoBeanName~"),
    /**Service接口名大写*/
    SERVICE_INTERFACE_CLASS_NAME_D("~serviceInterfaceNameD~"),
    /**Service接口名小写*/
    SERVICE_INTERFACE_CLASS_NAME_X("~serviceInterfaceNameX~"),
    /**Service接口作为参数的参数名大写*/
    SERVICE_INTERFACE_PARAM_NAME_D("~serviceInterfaceParamNameD~"),
    /**Service接口作为参数的参数名小写*/
    SERVICE_INTERFACE_PARAM_NAME_X("~serviceInterfaceParamNameX~"),
    /**Service接口的Bean对象名*/
    SERVICE_INTERFACE_BEAN_NAME("~serviceInterfaceBeanName~"),
    /**Service实现类类名大写*/
    SERVICE_CLASS_NAME_D("~serviceClassNameD~"),
    /**Service实现类类名小写*/
    SERVICE_CLASS_NAME_X("~serviceClassNameX~"),
    /**Service实现类作为参数的参数名大写*/
    SERVICE_PARAM_NAME_D("~serviceParamNameD~"),
    /**Service实现类作为参数的参数名小写*/
    SERVICE_PARAM_NAME_X("~serviceParamNameX~"),
    /**Service实现类的Bean对象名*/
    SERVICE_BEAN_NAME("~serviceBeanName~"),
    /**Controller实现类类名大写*/
    CONTROLLER_CLASS_NAME_D("~controllerClassNameD~"),
    /**Controller实现类类名小写*/
    CONTROLLER_CLASS_NAME_X("~controllerClassNameX~"),
    /**Controller实现类作为参数的参数名大写*/
    CONTROLLER_PARAM_NAME_D("~controllerParamNameD~"),
    /**Controller实现类作为参数的参数名小写*/
    CONTROLLER_PARAM_NAME_X("~controllerParamNameX~"),
    /**Controller实现类的Bean对象名*/
    CONTROLLER_BEAN_NAME("~controllerBeanName~"),
    /**Controller路径*/
    CONTROLLER_URL("~controllerUrl~"),
    /**Date类型的包名*/
    DATE_PACKAGE("~datePackage~"),
    /**List类型的包名*/
    LIST_PACKAGE("~listPackage~"),
    /**BigDeicmal类型的包名*/
    BIG_DECIMAL_PACKAGE("~bigDecimalPackage~"),
    /**RequestParam注解的包名*/
    REQUEST_PARAM_PACKAGE("~requestParamPackage~"),
    /**类注释(暂时所有类都是统一的注释,就是前缀后缀不一样)*/
    CLASS_COMMENT("~classComment~"),
    /**注释的时间yyyy-MM-dd*/
    COMMENT_DATE("~date~"),
    /**序列化ID*/
    SERIAL_VERSION_UID("~serialVersionUID~"),
    /**Entity的字段集合*/
    FIELDS("~fields~"),
    /**Entity的方法集合*/
    METHODS("~methods~"),
    /**字段注释*/
    FIELD_COMMENT("~fieldComment~"),
    /**字段类型*/
    FIELD_TYPE("~fieldType~"),
    /**字段名大写*/
    FIELD_NAME_D("~fieldNameD~"),
    /**字段名小写*/
    FIELD_NAME_X("~fieldNameX~"),
    /**数据库名原生*/
    DATABASE_NAME("~databaseName~"),
    /**数据库名大写*/
    DATABASE_NAME_D("~databaseNameD~"),
    /**数据库表名原生*/
    DATABASE_TABLE_NAME_Y("~databaseTableName~"),
    /**数据库表名大写*/
    DATABASE_TABLE_NAME_D("~databaseTableNameD~"),
    /**数据库字段名原生*/
    DATABASE_FIELD_NAME_Y("~databaseFieldName~"),
    /**数据库字段名大写*/
    DATABASE_FIELD_NAME_D("~databaseFieldNameD~"),
    /**数据库字段类型原生*/
    DATABASE_FIELD_TYPE_Y("~databaseFieldType~"),
    /**数据库字段类型大写*/
    DATABASE_FIELD_TYPE_D("~databaseFieldTypeD~"),
    /**数据库字段长度*/
    DATABASE_FIELD_LENGTH("~fieldLength~"),
    /**数据库字段属性*/
    DATABASE_FIELD_PROPERTIES("~fieldProperties~"),
    /**字段XML类型*/
    DATABASE_FIELD_XML_TYPE("~databaseFieldXmlType~"),
    /**JavaID 字段名大写*/
    ID_D("~idD~"),
    /**JavaID 字段名小写*/
    ID_X("~idX~"),
    /**ID的Java类型*/
    ID_JAVA_TYPE("~idJavaType~"),
    /**ID的jdbcType类型*/
    JDBC_ID_TYPE("~jdbcIdType~"),
    /**XMLID参数和返回值的类型*/
    XML_ID_PARAM_TYPE("~xmlIdParamType~"),
    /**数据库ID 字段名原生*/
    DATABASE_FIELD_ID_Y("~databaseFieldId~"),
    /**数据库ID 字段名大写*/
    DATABASE_FIELD_ID_D("~databaseFieldIdD~"),
    /**Java编号 字段名大写*/
    SERIAL_NUMBER_D("~serialNumberD~"),
    /**Java编号 字段名小写*/
    SERIAL_NUMBER_X("~serialNumberX~"),
    /**Java编号类型*/
    SERIAL_NUMBER_JAVA_TYPE("~serialNumberJavaType~"),
    /**Java编号的jdbcType类型*/
    JDBC_SERIAL_NUMBER_TYPE("~jdbcSerialNumberType~"),
    /**XML编号字段参数和返回值的类型*/
    XML_SERIAL_NUMBER_PARAM_TYPE("~xmlSerialNumberParamType~"),
    /**数据库编号 字段名原生*/
    DATABASE_FIELD_SERIAL_NUMBER_Y("~databaseFieldSerialNumber~"),
    /**数据库编号 字段名大写*/
    DATABASE_FIELD_SERIAL_NUMBER_D("~databaseFieldSerialNumberD~"),
    /**Java是否删除 字段名大写*/
    DEL_D("~delD~"),
    /**Java是否删除 字段名小写*/
    DEL_X("~delX~"),
    /**Java是否删除 字段类型*/
    DEL_JAVA_TYPE("~delJavaType~"),
    /**Java编号的jdbcType类型*/
    JDBC_DEL_TYPE("~jdbcDelType~"),
    /**XML是否删除字段参数和返回值的类型*/
    XML_DEL_PARAM_TYPE("~xmlDelParamType~"),
    /**数据库是否删除 字段名原生*/
    DATABASE_FIELD_IS_DEL_Y("~databaseFieldIsDel~"),
    /**数据库是否删除 字段名大写*/
    DATABASE_FIELD_IS_DEL_D("~databaseFieldIsDelD~"),
    /**数据库是否删除 字段被删除后的状态值*/
    DATABASE_FIELD_IS_DEL_NUMBER("~databaseFieldIsDelNumber~"),
    /**查询的时候忽略被逻辑删除的语句占位符*/
    /**whereCondition条件(查询条件)是否忽略被逻辑删除的(resources目录下的template目录下的xml目录下的FileTemplate中的ID为whereCondition的<sql>标签)*/
    FIND_IS_DEL("~findIsDel~"),
    /**遍历多个参数的时候的前缀*/
    DTO_("~dto.~"),
    /**ResultMap字段集合*/
    RESULT_MAP("~resultMap~"),
    /**columns字段集合*/
    COLUMNS("~columns~"),
    /**insertValues字段集合*/
    INSERT_VALUES("~insertValues~"),
    /**insertListValues字段集合*/
    INSERT_LIST_VALUES("~insertListValues~"),
    /**updateValues字段集合*/
    UPDATE_VALUES("~updateValues~"),
    /**updateListValues字段集合*/
    UPDATE_LIST_VALUES("~updateListValues~"),
    /**updatePartialValues字段集合*/
    UPDATE_PARTIAL_VALUES("~updatePartialValues~"),
    /**whereCondition字段集合*/
    WHERE_CONDITION("~whereCondition~"),
    /**deleteCondition字段集合*/
    DELETE_CONDITION("~deleteCondition~"),
    /**插入数据后返回的ID*/
    INSERT_ID("~insertId~"),
    /***/
    DELETE_ID("~deleteId~"),
    /***/
    DELETE_SERIAL_NUMBER("~deleteSerialNumber~"),
    /***/
    DELETE_UPDATE("~deleteUpdate~"),
    /***/
    DELETE_UPDATE_ID("~deleteUpdateId~"),
    /***/
    DELETE_UPDATE_SERIAL_NUMBER("~deleteUpdateSerialNumber~"),
    /***/
    SELECT_ID("~selectId~"),
    /***/
    SELECT_SERIAL_NUMBER("~selectSerialNumber~"),
    /***/
    UPDATE_ID("~updateId~"),
    /***/
    UPDATE_SERIAL_NUMBER("~updateSerialNumber~"),
    /***/
    UPDATE_PARTIAL_LIST_VALUES("~updatePartialListValues~"),
    /***/
    SELECT_DEL("~selectDel~"),
    /***/
    ID_TEMPLATE("~idTemplate~"),
    /***/
    SERIAL_NUMBER_TEMPLATE("~serialNumberTemplate~"),
    /***/
    DEL_TEMPLATE("~delTemplate~"),
    /***/
    ID_DEL_TEMPLATE("~idDelTemplate~"),
    /***/
    SERIAL_NUMBER_DEL_TEMPLATE("~serialNumberDelTemplate~"),
    /***/
    CLEAR_TEMPLATE("~clearTemplate~"),
    /***/
    CLEAR_DEL_TEMPLATE("~clearDelTemplate~"),
    /***/
    CONTROLLER_SUFFIX_ACTION("~controllerSuffixAction~"),
    /***/
    CONTROLLER_SUFFIX_SHOW("~controllerSuffixShow~"),
    /***/
    CONTROLLER_SUFFIX_DO("~controllerSuffixDo~"),
    /***/
    DROP_FOREIGN_KEY("~dropForeignKey~"),
    /***/
    DROP_TABLE("~dropTable~"),
    /***/
    TABLE_FIELDS("~tableFields~"),
    /***/
    FOREIGN_KEY_NAME("~foreignKeyName~"),
    /***/
    FOREIGN_KEY_TABLE_NAME("~foreignKeyTableName~"),
    /***/
    FOREIGN_KEY_TABLE_FIELD_NAME("~foreignKeyTableFieldName~"),
    /***/
    AUTO_INCREMENT("~autoIncrement~"),
    /***/
    DATABASE_COLLATE("~engine~"),
    /***/
    DATABASE_CHARACTER("~charset~"),
    /***/
    PACKAGES("~packages~"),
    /***/
    ID_XML_PARAM("~idXmlParam~"),
    /***/
    STATUS_NO("~statusNo~"),
    /***/
    STATUS_NO_LIST("~statusNoList~"),
    /***/
    STATUS_NO_XML_TYPE("~statusNoXmlType~"),
    /***/
    XING("~*~");

    /**模板的占位符名称*/
    private String placeholder;

    private Placeholder(String placeholder) {
        this.placeholder = placeholder;
    }

    /**
     * 获取模板的占位符名称
     * 
     * @return
     */
    public String getPlaceholder() {
        return placeholder;
    }

    /**
     * 设置模板的占位符名称
     * 
     * @param placeholder
     */
    public void setPlaceholder(String placeholder) {
        this.placeholder = placeholder;
    }

}